0、Block Change Tracking功能
默认情况下Block Change Tracking是被禁用的,该功能通过读取小的位图文件来决定哪个块改变了,在增量备份的过程中,开启这个功能可以避免扫面所有的数据文件,加快备份效率。
1、检查是否开启Block Change Tracking
1 | 19:38:00 SYS@ boston> COL STATUS FORMAT A8 |
2、开启block change tracking
设置 DB_CREATE_FILE_DEST参数SHOW PARAMETER DB_CREATE_FILE_DEST
1 | 19:38:28 SYS@ boston> SHOW PARAMETER DB_CREATE_FILE_DEST |
如果db_create_file_dest参数没有设置,可以使用下面命令设置ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/home/oracle/' SCOPE=BOTH SID='*';
1 | 19:40:40 SYS@ boston> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/home/oracle/' SCOPE=BOTH SID='*'; |
设置完成db_create_file_dest参数之后,开启block change tracking
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
1 | 19:41:51 SYS@ boston> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING; |
如果没有指定db_create_file_dest参数,也可以在开启block change tracking参数时指定ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/tmp/rman_change_track.f' REUSE;
1 | 19:46:20 SYS@ boston> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING; |
3、禁用Block Change Tracking
ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
4、改变Block Change Tracking File位置
方法1:在不关闭数据库的情况下修改文件位置,可使用下面方法:
1 | ALTER DATABASE DISABLE BLOCK CHANGE TRACKING; |
这种方法会丢失已经存在的Block Change Tracking File,要想不丢失Block Change Tracking File需要使用下面方法
方法2:查看Block Change Tracking File原来的位置:
SELECT FILENAME FROM V$BLOCK_CHANGE_TRACKING;
1 | 19:52:19 SYS@ boston> SELECT FILENAME FROM V$BLOCK_CHANGE_TRACKING; |
关闭数据库SHUTDOWN IMMEDIATE
操作系统下拷贝物理文件到新的目标路径mv /tmp/rman_change_track.f /home/oracle/new_rman_change_track.f
启动数据库到mountstartup mount
修改Block Change Tracking FileALTER DATABASE RENAME FILE '/tmp/rman_change_track.f' TO '/home/oracle/new_rman_change_track.f';
打开数据库ALTER DATABASE OPEN;
查看Block Change Tracking File的文件路径
1 | 20:03:18 SYS@ boston> SELECT FILENAME FROM V$BLOCK_CHANGE_TRACKING; |